]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st: Use macros to generate type boilerplate
authorBilal Elmoussaoui <belmouss@redhat.com>
Wed, 16 Oct 2024 10:32:04 +0000 (12:32 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Thu, 17 Oct 2024 16:54:12 +0000 (18:54 +0200)
Also mark certain types as final when they are not meant to be used
externally

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3506>
(cherry picked from commit ad0e2c940b58f7ba9642d8990e830235136d8a4a)

src/st/st-button.c
src/st/st-entry.c
src/st/st-generic-accessible.c
src/st/st-generic-accessible.h
src/st/st-label.c
src/st/st-widget-accessible.h
src/st/st-widget.c

index a79098306d5a83414b2e598883d1eebb477605d7..f379f131b6d4ca0d000291e55134262f051a2c71 100644 (file)
@@ -89,7 +89,10 @@ static guint button_signals[LAST_SIGNAL] = { 0, };
 
 G_DEFINE_TYPE_WITH_PRIVATE (StButton, st_button, ST_TYPE_BIN);
 
-static GType st_button_accessible_get_type (void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (StButtonAccessible,
+                      st_button_accessible,
+                      ST, BUTTON_ACCESSIBLE,
+                      StWidgetAccessible)
 
 static void
 st_button_update_label_style (StButton *button)
@@ -909,44 +912,17 @@ st_button_fake_release (StButton *button)
 
 #define ST_TYPE_BUTTON_ACCESSIBLE st_button_accessible_get_type ()
 
-#define ST_BUTTON_ACCESSIBLE(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
-  ST_TYPE_BUTTON_ACCESSIBLE, StButtonAccessible))
-
-#define ST_IS_BUTTON_ACCESSIBLE(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
-  ST_TYPE_BUTTON_ACCESSIBLE))
-
-#define ST_BUTTON_ACCESSIBLE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), \
-  ST_TYPE_BUTTON_ACCESSIBLE, StButtonAccessibleClass))
-
-#define ST_IS_BUTTON_ACCESSIBLE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), \
-  ST_TYPE_BUTTON_ACCESSIBLE))
-
-#define ST_BUTTON_ACCESSIBLE_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), \
-  ST_TYPE_BUTTON_ACCESSIBLE, StButtonAccessibleClass))
-
-typedef struct _StButtonAccessible  StButtonAccessible;
-typedef struct _StButtonAccessibleClass  StButtonAccessibleClass;
-
-struct _StButtonAccessible
+typedef struct _StButtonAccessible
 {
   StWidgetAccessible parent;
-};
+} StButtonAccessible;
 
-struct _StButtonAccessibleClass
-{
-  StWidgetAccessibleClass parent_class;
-};
 
 /* AtkObject */
 static void          st_button_accessible_initialize (AtkObject *obj,
                                                       gpointer   data);
 
-G_DEFINE_TYPE (StButtonAccessible, st_button_accessible, ST_TYPE_WIDGET_ACCESSIBLE)
+G_DEFINE_FINAL_TYPE (StButtonAccessible, st_button_accessible, ST_TYPE_WIDGET_ACCESSIBLE)
 
 static const gchar *
 st_button_accessible_get_name (AtkObject *obj)
index f219e7908b788d3b15369eb4c82adef3e400838b..2aa72bd2d2a5f911db66f213a68c6d9dd586fa57 100644 (file)
@@ -114,7 +114,10 @@ static guint entry_signals[LAST_SIGNAL] = { 0, };
 
 G_DEFINE_TYPE_WITH_PRIVATE (StEntry, st_entry, ST_TYPE_WIDGET);
 
-static GType st_entry_accessible_get_type (void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (StEntryAccessible,
+                      st_entry_accessible,
+                      ST, ENTRY_ACCESSIBLE,
+                      StWidgetAccessible)
 
 static void
 st_entry_set_property (GObject      *gobject,
@@ -1508,26 +1511,14 @@ st_entry_get_hint_actor (StEntry *entry)
 /******************************************************************************/
 
 #define ST_TYPE_ENTRY_ACCESSIBLE         (st_entry_accessible_get_type ())
-#define ST_ENTRY_ACCESSIBLE(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), ST_TYPE_ENTRY_ACCESSIBLE, StEntryAccessible))
-#define ST_IS_ENTRY_ACCESSIBLE(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), ST_TYPE_ENTRY_ACCESSIBLE))
-#define ST_ENTRY_ACCESSIBLE_CLASS(c)     (G_TYPE_CHECK_CLASS_CAST ((c),    ST_TYPE_ENTRY_ACCESSIBLE, StEntryAccessibleClass))
-#define ST_IS_ENTRY_ACCESSIBLE_CLASS(c)  (G_TYPE_CHECK_CLASS_TYPE ((c),    ST_TYPE_ENTRY_ACCESSIBLE))
-#define ST_ENTRY_ACCESSIBLE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o),  ST_TYPE_ENTRY_ACCESSIBLE, StEntryAccessibleClass))
 
-typedef struct _StEntryAccessible  StEntryAccessible;
-typedef struct _StEntryAccessibleClass  StEntryAccessibleClass;
 
-struct _StEntryAccessible
+typedef struct _StEntryAccessible
 {
   StWidgetAccessible parent;
-};
-
-struct _StEntryAccessibleClass
-{
-  StWidgetAccessibleClass parent_class;
-};
+} StEntryAccessible;
 
-G_DEFINE_TYPE (StEntryAccessible, st_entry_accessible, ST_TYPE_WIDGET_ACCESSIBLE)
+G_DEFINE_FINAL_TYPE (StEntryAccessible, st_entry_accessible, ST_TYPE_WIDGET_ACCESSIBLE)
 
 static void
 st_entry_accessible_init (StEntryAccessible *self)
index 33feef20fc5e1a0e13b18a9553c306478c3477ac..3d51b0210d62c5fac0ce4d77ba68be3661c74981 100644 (file)
 
 static void atk_value_iface_init (AtkValueIface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(StGenericAccessible,
-                        st_generic_accessible,
-                        ST_TYPE_WIDGET_ACCESSIBLE,
-                        G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE,
-                                               atk_value_iface_init));
+typedef struct _StGenericAccessible
+{
+  StWidgetAccessible parent_class;
+} StGenericAccessible;
+
+G_DEFINE_FINAL_TYPE_WITH_CODE (StGenericAccessible,
+                               st_generic_accessible,
+                               ST_TYPE_WIDGET_ACCESSIBLE,
+                               G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE,
+                                                      atk_value_iface_init));
 /* Signals */
 enum
 {
index b180c05fb10f60ec41726bd93977dfbe481d7314..7999dcaf6b8a8be620dc00b42501fdbf1ebcd8e8 100644 (file)
 G_BEGIN_DECLS
 
 #define ST_TYPE_GENERIC_ACCESSIBLE                 (st_generic_accessible_get_type ())
-#define ST_GENERIC_ACCESSIBLE(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), ST_TYPE_GENERIC_ACCESSIBLE, StGenericAccessible))
-#define ST_GENERIC_ACCESSIBLE_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), ST_TYPE_GENERIC_ACCESSIBLE, StGenericAccessibleClass))
-#define ST_IS_GENERIC_ACCESSIBLE(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ST_TYPE_GENERIC_ACCESSIBLE))
-#define ST_IS_GENERIC_ACCESSIBLE_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), ST_TYPE_GENERIC_ACCESSIBLE))
-#define ST_GENERIC_ACCESSIBLE_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), ST_TYPE_GENERIC_ACCESSIBLE, StGenericAccessibleClass))
 
-typedef struct _StGenericAccessible        StGenericAccessible;
-typedef struct _StGenericAccessibleClass   StGenericAccessibleClass;
-
-typedef struct _StGenericAccessiblePrivate StGenericAccessiblePrivate;
-
-struct _StGenericAccessible
-{
-    StWidgetAccessible parent;
-
-    StGenericAccessiblePrivate *priv;
-};
-
-struct _StGenericAccessibleClass
-{
-    StWidgetAccessibleClass parent_class;
-};
-
-GType       st_generic_accessible_get_type         (void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (StGenericAccessible,
+                      st_generic_accessible,
+                      ST, GENERIC_ACCESSIBLE,
+                      StWidgetAccessible)
 
 AtkObject*  st_generic_accessible_new_for_actor (ClutterActor *actor);
 
index a45f8d138ce75ba6f024795027d4a31925786eb1..f39cf6fce835177b5c83d69505f3180ca39176a6 100644 (file)
@@ -69,7 +69,10 @@ struct _StLabelPrivate
 
 G_DEFINE_TYPE_WITH_PRIVATE (StLabel, st_label, ST_TYPE_WIDGET);
 
-static GType st_label_accessible_get_type (void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (StLabelAccessible,
+                      st_label_accessible,
+                      ST, LABEL_ACCESSIBLE,
+                      StWidgetAccessible)
 
 static void
 st_label_set_property (GObject      *gobject,
@@ -439,45 +442,16 @@ st_label_get_clutter_text (StLabel *label)
 
 #define ST_TYPE_LABEL_ACCESSIBLE st_label_accessible_get_type ()
 
-#define ST_LABEL_ACCESSIBLE(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
-  ST_TYPE_LABEL_ACCESSIBLE, StLabelAccessible))
-
-#define ST_IS_LABEL_ACCESSIBLE(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
-  ST_TYPE_LABEL_ACCESSIBLE))
-
-#define ST_LABEL_ACCESSIBLE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), \
-  ST_TYPE_LABEL_ACCESSIBLE, StLabelAccessibleClass))
-
-#define ST_IS_LABEL_ACCESSIBLE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), \
-  ST_TYPE_LABEL_ACCESSIBLE))
-
-#define ST_LABEL_ACCESSIBLE_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), \
-  ST_TYPE_LABEL_ACCESSIBLE, StLabelAccessibleClass))
-
-typedef struct _StLabelAccessible  StLabelAccessible;
-typedef struct _StLabelAccessibleClass  StLabelAccessibleClass;
-
-struct _StLabelAccessible
-{
-  StWidgetAccessible parent;
-};
-
-struct _StLabelAccessibleClass
-{
-  StWidgetAccessibleClass parent_class;
-};
-
 /* AtkObject */
 static void          st_label_accessible_initialize (AtkObject *obj,
                                                      gpointer   data);
 static const gchar * st_label_accessible_get_name   (AtkObject *obj);
 
-G_DEFINE_TYPE (StLabelAccessible, st_label_accessible, ST_TYPE_WIDGET_ACCESSIBLE)
+typedef struct _StLabelAccessible {
+  StWidgetAccessible parent_class;
+} StLabelAccessible;
+
+G_DEFINE_FINAL_TYPE (StLabelAccessible, st_label_accessible, ST_TYPE_WIDGET_ACCESSIBLE)
 
 static void
 st_label_accessible_class_init (StLabelAccessibleClass *klass)
index e3d00187c1e0957fd816ada0578ece40b0d4f8d2..4c2c84f97bb519850eac163ce845e2a4a7d9a260 100644 (file)
@@ -31,43 +31,18 @@ G_BEGIN_DECLS
 
 #define ST_TYPE_WIDGET_ACCESSIBLE st_widget_accessible_get_type ()
 
-#define ST_WIDGET_ACCESSIBLE(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
-  ST_TYPE_WIDGET_ACCESSIBLE, StWidgetAccessible))
+G_DECLARE_DERIVABLE_TYPE (StWidgetAccessible,
+                          st_widget_accessible,
+                          ST, WIDGET_ACCESSIBLE,
+                          ClutterActorAccessible)
 
-#define ST_IS_WIDGET_ACCESSIBLE(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
-  ST_TYPE_WIDGET_ACCESSIBLE))
-
-#define ST_WIDGET_ACCESSIBLE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), \
-  ST_TYPE_WIDGET_ACCESSIBLE, StWidgetAccessibleClass))
-
-#define ST_IS_WIDGET_ACCESSIBLE_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), \
-  ST_TYPE_WIDGET_ACCESSIBLE))
-
-#define ST_WIDGET_ACCESSIBLE_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), \
-  ST_TYPE_WIDGET_ACCESSIBLE, StWidgetAccessibleClass))
-
-typedef struct _StWidgetAccessible  StWidgetAccessible;
 typedef struct _StWidgetAccessibleClass  StWidgetAccessibleClass;
-typedef struct _StWidgetAccessiblePrivate  StWidgetAccessiblePrivate;
 
-struct _StWidgetAccessible
-{
-  ClutterActorAccessible parent;
-
-  /*< private >*/
-  StWidgetAccessiblePrivate *priv;
-};
 
 struct _StWidgetAccessibleClass
 {
   ClutterActorAccessibleClass parent_class;
 };
 
-GType st_widget_accessible_get_type (void) G_GNUC_CONST;
 
 G_END_DECLS
index 9422f981821b8ff68607ab9ab4f50425de817856..797d629d10a38c1f08e002e5dcf889c67466faa2 100644 (file)
@@ -2453,7 +2453,7 @@ static AtkStateSet *st_widget_accessible_ref_state_set (AtkObject *obj);
 static void         st_widget_accessible_initialize    (AtkObject *obj,
                                                         gpointer   data);
 
-struct _StWidgetAccessiblePrivate
+typedef struct _StWidgetAccessiblePrivate
 {
   /* Cached values (used to avoid extra notifications) */
   gboolean selected;
@@ -2463,7 +2463,7 @@ struct _StWidgetAccessiblePrivate
    * relationships between this object and the label
    */
   AtkObject *current_label;
-};
+} StWidgetAccessiblePrivate;
 
 G_DEFINE_TYPE_WITH_PRIVATE (StWidgetAccessible, st_widget_accessible, CLUTTER_TYPE_ACTOR_ACCESSIBLE)
 
@@ -2482,21 +2482,16 @@ st_widget_accessible_class_init (StWidgetAccessibleClass *klass)
 static void
 st_widget_accessible_init (StWidgetAccessible *self)
 {
-  StWidgetAccessiblePrivate *priv = st_widget_accessible_get_instance_private (self);
-
-  self->priv = priv;
 }
 
 static void
 st_widget_accessible_dispose (GObject *gobject)
 {
   StWidgetAccessible *self = ST_WIDGET_ACCESSIBLE (gobject);
+  StWidgetAccessiblePrivate *priv =
+    st_widget_accessible_get_instance_private (self);
 
-  if (self->priv->current_label)
-    {
-      g_object_unref (self->priv->current_label);
-      self->priv->current_label = NULL;
-    }
+  g_clear_object (&priv->current_label);
 
   G_OBJECT_CLASS (st_widget_accessible_parent_class)->dispose (gobject);
 }
@@ -2524,6 +2519,7 @@ st_widget_accessible_ref_state_set (AtkObject *obj)
   StWidget *widget = NULL;
   StWidgetPrivate *widget_priv;
   StWidgetAccessible *self = NULL;
+  StWidgetAccessiblePrivate *priv;
 
   result = ATK_OBJECT_CLASS (st_widget_accessible_parent_class)->ref_state_set (obj);
 
@@ -2534,15 +2530,16 @@ st_widget_accessible_ref_state_set (AtkObject *obj)
 
   widget = ST_WIDGET (actor);
   self = ST_WIDGET_ACCESSIBLE (obj);
+  priv = st_widget_accessible_get_instance_private (self);
   widget_priv = st_widget_get_instance_private (widget);
 
   /* priv->selected should be properly updated on the
    * ATK_STATE_SELECTED notification callbacks
    */
-  if (self->priv->selected)
+  if (priv->selected)
     atk_state_set_add_state (result, ATK_STATE_SELECTED);
 
-  if (self->priv->checked)
+  if (priv->checked)
     atk_state_set_add_state (result, ATK_STATE_CHECKED);
 
   /* On clutter there isn't any tip to know if a actor is focusable or
@@ -2596,7 +2593,7 @@ check_pseudo_class (StWidget *widget)
   if (!accessible)
     return;
 
-  priv = ST_WIDGET_ACCESSIBLE (accessible)->priv;
+  priv = st_widget_accessible_get_instance_private (ST_WIDGET_ACCESSIBLE (accessible));
   found = st_widget_has_style_pseudo_class (widget,
                                             "selected");
 
@@ -2631,7 +2628,7 @@ check_labels (StWidget *widget)
   if (!accessible)
     return;
 
-  priv = ST_WIDGET_ACCESSIBLE (accessible)->priv;
+  priv = st_widget_accessible_get_instance_private (ST_WIDGET_ACCESSIBLE (accessible));
 
   /* We only call this method at startup, and when the label changes,
    * so it is fine to remove the previous relationships if we have the